'''
 * Licensed to the Apache Software Foundation (ASF) under one
 * or more contributor license agreements.  See the NOTICE file
 * distributed with this work for additional information
 * regarding copyright ownership.  The ASF licenses this file
 * to you under the Apache License, Version 2.0 (the
 * "License") you may not use this file except in compliance
 * with the License.  You may obtain a copy of the License at
 *
 *     http:#www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
'''
from base.rdf.StatementBoundary import StatementBoundary

# import org.apache.jena.graph.TripleBoundary;

'''
 * StatementTripleBoundary - a StatementBoundary that just wraps a
 * TripleBoundary.
'''
from abc import ABC


class StatementTripleBoundary(ABC, StatementBoundary):
    # protected TripleBoundary tb

    """
     * Initialise this StatementTripleBoundary with the TripleBoundary <code>tb</code>.
     *
     * @param tb
    """

    # param self, tb
    # result def
    def __init__(self, tb):
        self.tb = tb

    '''
     * Answer whatever the triple-boundary answers for the triple of <code>s</code>.
    '''

    # @Override
    # param Statement s
    # result boolean
    def stopAt(self, s):
        return self.tb.stopAt(s.asTriple())

    '''
     * Answer the supplied-to-constructor TripleBoundary.
    '''

    # @Override
    # param Model ignored
    # result TripleBoundary
    def asTripleBoundary(self, ignored):
        return self.tb
